package com.ibeeking.found.msg.rest.service;

import com.ibeeking.found.msg.service.common.bo.SmsTemplateBO;
import com.ibeeking.found.msg.service.common.param.SmsTemplateParam;
import com.ibeeking.found.msg.service.common.query.SmsTemplateQuery;
import com.ibeeking.found.msg.service.common.vo.SmsTemplateParamVO;
import com.ibeeking.found.msg.service.common.vo.SmsTemplateVO;

import java.util.List;


/**
 * ISmsTemplateService
 *
 * @Author ibeeking
 * @Date 2020-12-09 10:54
 */
public interface ISmsTemplateService {
    /***
     * 查询List
     */
    List<SmsTemplateVO> list(SmsTemplateQuery query);
    /***
     * 查询基于config id
     */
    List<SmsTemplateVO> listByConfigId(Long configId);
    /***
     * 查询基于缺省config id
     */
    List<SmsTemplateVO> listEffectTemplateByDefaultConfig();
    /**
     * 模板参数列表
     *
     * @param
     * @return
     */
    List<SmsTemplateParamVO> listSmsTemplateParam(Long templateId);
    /***
     * 新增
     */
    Boolean add(SmsTemplateParam smsTemplateParam);

    /***
     * 修改
     */
    Boolean modify(SmsTemplateParam smsTemplateParam);

    /***
     * 通过id查询
     */
    SmsTemplateVO view(Long id);

    /**
     * 通过code查询
     *
     * @param code
     * @return
     */
    SmsTemplateVO queryTemplateByCode(String code);

    SmsTemplateBO queryById(Long id);

    /**
     * 根据code查询短信模板配置
     *
     * @param code
     * @return
     */
    SmsTemplateBO querySmsTemplateBOByCode(String code);

    /***
     * 修改状态
     */
    Boolean changeStatus(Long id, Integer status);

    /***
     * 通过id删除
     */
    Boolean del(Long id);

    Long checkName(Long configId, String name);

    Long checkCode(Long configId, String code);

}
